蹭个热度--要不要DBA和云数据库
昨天两篇文章《你怎么还在招聘DBA?》和《云数据库是不是智商税?》在网上热议,前者说云数据库不需要DBA这个岗位了,后者说我们应该让数据库下云。我来凑个热度吧。我个人经历从来没用过云(公有云),所以前者说的我没有亲身体会,只能说是看到什么听到什么学什么了。
补充一点私有云(我个人觉得应该叫资源池,没有云的属性啊)。云能解决什么?能解决快速获得,弹性计算等。但是私有的资源池(我依然觉得不能叫做云),不能。一般企业要一个数据库走审批吧,等个半个月也不少见,磁盘没有了,等审批走采购吧。所以我觉得私有云不能算是云。
接下来说我观点了,我觉得不管用不用云,数据库都要面对这么几个问题:1、不合理的需求;2、不合理的设计;3、不合理的实现。(问题不止这些,我这里仅仅是例举)这些问题是需要去解决的。今天云上的数据库会监控发现问题,能给的建议基本也是建立索引等,Oracle多年前实现了自治数据库,也就是自动化建立索引。目前没有看到哪个数据库过来该表结构,改SQL逻辑,修改表的关联,甚至去反弹业务逻辑和需求的。以我这些年的工作经验来说,优化不仅仅是建立索引(当然这是必须的),很多工作要触及到实现、设计甚至是需求才能优化的。比如我们发现一个SQL,问开发为什么要这样写?我几乎能猜到99%的开发说,需求如此。然后就没有然后了。而去年我经历了一些让我感觉到必须去触碰一下业务才能解决。有的时候问题业务人员甚至业务的领导,得到的答复是我们的需求不是这样的。然后我们就改设计改实现获得了巨大的提升,不入侵业务很难达到这样的效果。由于拿到了第一手的需求,甚至我会引导他向着更加对数据库友好的方式提需求。然后我就指导开发怎么去实现,怎么去写。我说的这些没有一个数据库能做到,去改表的设计以及SQL的逻辑修改,而且我觉得可能未来20-30年都不会有。这就是我想表达的。
对于云数据库的确解决了“部署、安装、备份、恢复”这些低价值工作。这些也就是database administrator,这些是最起码的基本功。基本功还是需要的,毕竟有这些基本功,处理问题会比没有基本功的人要好一些。不过如果将来大家还只会这些,那是不行的。要被淘汰了。不去改写SQL,不去设计数据库对象,不去控制需求。那么数据库的稳定的无从谈起。消防队不仅仅是救火,每个建设落成的时候都要有消防的检查验收。救火不是目的,不失火才是最好的。一个城市最好就是一年到头没有火灾,那么要不要解散消防队?估计不会。最起码新的建筑需要消防去检查是不是合格。
再说数据库下云,不少公司是不能用公有云的。这是现状,也可能是未来。我所在的就是。所以不上有不上的好处。如果20-30台服务器的,上云可能性价比还可以。这让小企业,没有运维能力的也能运行起来。不用管部署、安装、备份、恢复、安全等等。不过如果有几百台服务器的话,可能自建的性价比就比上云高了。这点上我是支持冯总的(云数据库是不是智商税?的作者)。